
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<signal.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<errno.h>

int main(void)
{
	int status;
	int ret;
	int i;
	for(i=1;i<=3;i++){
		switch(fork()){
			case -1:
				perror("fork error");
				exit(-1);
			case 0:
				printf("child process created:%d\n",getpid());
				sleep(i);
				_exit(i);
			default:
				break;
		}
	}

	sleep(1);
	for(i=1;i<=3;i++){
		ret=wait(&status);
		if(-1==ret){
			if(ECHILD==errno){
				printf("no need to reback\n");
				exit(0);
			}else{
				perror("wait error");
				exit(-1);
			}
		}
		printf("reback<%d>,term status:<%d>\n",ret,WEXITSTATUS(status));
	}
}
